﻿using System;

namespace FBGraph.Web
{
    /// <summary>Defines a wrapper for HTTP Session State.</summary>
    public interface IHttpSessionStateWrapper
    {
        /// <summary>Gets or sets a session value by numeric index.</summary>
        /// <param name="index">The numeric index of the session value.</param>
        /// <returns>The session-state value stored at the specific index, or a null reference if the item does not exist.</returns>
        Object this[Int32 index] { get; set; }
        
        /// <summary>Gets or sets a session value by name.</summary>
        /// <param name="key">The key name of the session value.</param>
        /// <returns>The session-state value with the specified name, or a null reference if the item does not exist.</returns>
        Object this[String key] { get; set; }

        /// <summary>Gets the unique identifier for the session.</summary>
        String SessionID { get; }
    }
}